package com.chixing.day20_annotation_jdk8.work;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class PersonDemo {
    public static void main(String[] args) {
        Person person1 = new Person(101,"王磊");
        Person person2 = new Person(102,"李磊磊");
        Person person3 = new Person(103,"李华");
        Person person4 = new Person(104,"李明");
        Person person5 = new Person(105,"王家卫");

        List<Person> list = new ArrayList<>();
        list.add(person1);
        list.add(person2);
        list.add(person3);
        list.add(person4);
        list.add(person5);
//        1.只要名字为3个字的成员姓名;存储到一个新集合中
        List<Person> list1 = list.stream().filter((cost)->cost.getPerName().length()==3).collect(Collectors.toList());
        list1.forEach(System.out::println);
//        2.筛选之后只要前3个人;存储到一个新集合中
        List<Person> list2 = list.stream().limit(3).collect(Collectors.toList());
        list2.forEach(System.out::println);
//        3.只要姓李的成员姓名;存储到一-个新集合中。
        List<Person> list3 = list.stream().filter((cost)->cost.getPerName().startsWith("李")).collect(Collectors.toList());
        list3.forEach(System.out::println);
//        4.筛选之后不要前2个人;存储到一-个新集合中。
          List<Person> list4 = list.stream().skip(2).collect(Collectors.toList());
          list4.forEach(System.out::println);
//        5.根据姓氏分组将Person对象存储到对应的集合中。（如姓张的Person对象在一个集合中，姓李的Person对象在一个集合中...）
        Map<Character,List<Person>> map = list.stream().collect(Collectors.groupingBy(person -> person.getPerName().charAt(0)));
        System.out.println(map);

    }
}
